package com.self.test.webmagic;

import java.util.List;

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.pipeline.JsonFilePipeline;
import us.codecraft.webmagic.processor.PageProcessor;

public class PageprocessorDemo implements PageProcessor {
	// 部分一：抓取网站的相关配置，包括编码、抓取间隔、重试次数等
	private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);
	
	public static void main(String[] args) {
		String url = "http://news.baidu.com/";
		String url1 = "http://www.4567mp4.com/";
		
		Spider.create(new PageprocessorDemo())
			//从http://www.4567mp4.com/开始抓 
			.addUrl(url1)
			//设置Scheduler，使用Redis来管理URL队列
            //.setScheduler(new RedisScheduler("localhost"))
            //设置Pipeline，将结果以json方式保存到文件
            .addPipeline(new JsonFilePipeline("E:\\data\\webmagic"))
			//开启5个线程同时执行
			.thread(5)
			//启动爬虫
			.run();
	}

	@Override
	public Site getSite() {
		return site;
	}

	@Override
	// process是定制爬虫逻辑的核心接口，在这里编写抽取逻辑
	public void process(Page page) {
		movie(page);
		//newsNameAndTitle(page);
	}
	//获取视频网站标题
	public static void movie(Page page) {
		List<String> newstitles=page.getHtml().xpath("//div[@class='content']/div/ul/li/h5/a/text()").all();
		for (String newstitle : newstitles) {
        	 System.out.println(newstitle);
		}
        
	}
	//获取百度新闻标题
	public static void newsNameAndTitle(Page page) {
		List<String> newstitles=page.getHtml().xpath("//div[@class='mod-tab-content']/div/div/ul/li/strong/a/text()").all();
		List<String> links = page.getHtml().xpath("//div[@class='mod-tab-content']/div/div/ul/li/strong/a/@href").all();
    	if(newstitles != null && newstitles.size() > 0) {
    		page.addTargetRequests(newstitles);
    	}
    	if(links != null && links.size() > 0) {
    		page.addTargetRequests(links);
    	}
        page.addTargetRequests(page.getHtml().links().regex("(http://news.baidu.com\\w+/\\w+)").all());
        System.out.println(page.getUrl());
	}
	
}
